/**
 * @Author: Sagan
 * @Date: 2020/09/24 20:56
 */
package function

import (
	"gitee.com/big_meteor/godash/lang"
	"unicode"
)

func IsChsNum(r rune) bool {
	return unicode.Is(unicode.Han, r) || unicode.IsDigit(r)
}

func IsChsAlpha(r rune) bool {
	return unicode.Is(unicode.Han, r) || unicode.IsLetter(r)
}

func IsChsAlphaNum(r rune) bool {
	return unicode.Is(unicode.Han, r) || unicode.IsLetter(r) || unicode.IsDigit(r)
}

func IsChsDash(r rune) bool {
	return unicode.Is(unicode.Han, r) || unicode.IsLetter(r) || unicode.IsDigit(r) || lang.ToRune("_") == r || lang.ToRune("-") == r
}

func Chs(v string) bool {
	for _, r := range v {
		if false == unicode.Is(unicode.Han, r) {
			return false
		}
	}
	return true
}

func ChsNum(v string) bool {
	for _, r := range v {
		if false == IsChsNum(r) {
			return false
		}
	}
	return true
}

func ChsAlpha(v string) bool {
	for _, r := range v {
		if false == IsChsAlpha(r) {
			return false
		}
	}
	return true
}

func ChsAlphaNum(v string) bool {
	for _, r := range v {
		if false == IsChsAlphaNum(r) {
			return false
		}
	}
	return true
}

func ChsDash(v string) bool {
	for _, r := range v {
		if false == IsChsDash(r) {
			return false
		}
	}
	return true
}
